Service providers often struggle with network function chaining, which is the process of steering a traffic flow across a predefined set of network functions. Traditionally, operators made use of bump-in-the wire strategy or policy based routing (PBR) to achieve the desired network function chain. However, these approaches lack the required flexibility where a network function chain could be determined dynamically based on, for example, source or destination address, application type and other service level agreements or operator policies.
The recent advances in software engineering and high-performance commodity servers facilitate virtualization of network function (NFs). NFs traditionally delivered on proprietary and application-specific equipment now can be realized in software running on generic server hardware (e.g., commercial off-the-shelf (COTS) servers). The technology, coined as network function virtualization (NFV), is gaining increasing popularity with network operators.
NFV may be implemented at various parts of a network, such as at a serving gateway (S-GW), packet data network gateway (P-GW), serving GPRS (general packet radio service) support node (SGSN), gateway GPRS support node (GGSN), broadband remote access server (BRAS), and provider edge (PE) routers. NFV can also be implemented to support various services also called appliances or middleboxes, such as content filter, deep packet inspection (DPI), firewall (FW), virus scanning (VS), Intrusion Detection and Prevention (IDP), and network address translation (NAT), etc.
The flexibility offered by NFV allows more dynamic deployments of the traditional network functions, in various locations such as the operator's cloud or even central offices and point of presences (POPs) where a smaller scale data center may reside. For the purpose of load balancing or latency, one type of network function may be instantiated and hosted at multiple locations providing the same functions (i.e., multiple instances of the same network function).
When configuring a network function chain in a network, the multiple instances of a required network function may present different costs: 1) the cost associated with using a particular network function instance; 2) networking cost to that instance in the network function chain; and 3) the impact on the cost of the remaining part of the chain. In routing a network function chain, these costs need to be considered in aggregation.
In addition, the configuration of a network function chain includes the determination of the location of all the required network functions and the most efficient routing across the network functions. NFV further places the network function chaining problem into a more challenging context. As NFV allows virtual network function (vNF) deployment when and where needed, there would not be fixed locations to host certain network functions. Thus, for each network function chain, the service providers need to dynamically evaluate the network functions' and network's states.